import sys
from PyQt5.QtWidgets import QMainWindow,QApplication,QWidget,QPushButton,QHBoxLayout,QMessageBox
from PyQt5.QtCore import QCoreApplication

class MyQwidget(QWidget):
    def __init__(self):
        super(QWidget,self).__init__()

        #设置窗口title、尺寸
        self.setWindowTitle('Simple PyQt5 Gui')
        self.resize(300,500)
        self.move(600,400)

        #设置button
        btn1 = QPushButton(self)
        btn1.setText('按钮1')
        btn1.resize(btn1.sizeHint())
        btn1.move(50,50)
        #设置button的信号与槽， 这里的button的click信号对应的槽处理函数是MyQwidget窗口的close（关闭窗口）
        # btn1.clicked.connect(QCoreApplication.instance().quit)

        btn1.pressed.connect(self.myPressSlot)
        #设置layout并把button放到layout布局中
        layout = QHBoxLayout()
        layout.addWidget(btn1)

        #把layout放到MyQwidget中
        self.setLayout(layout)

        #将控件显示在屏幕上，必须设置shouw才能看到图形效果
        self.show()

    def myPressSlot(self):
        print("按钮press事件机制")

if __name__ == "__main__":
    print("hello world")
    app = QApplication(sys.argv)
    myQwidget = MyQwidget()

    # send = QCoreApplication().sender()
    # print("", send.)
    #进入application的主循环，开始接收事件处理并将事件分发给控件，在exit()保证干净退出，当主控件销毁或者调用exit()方法时主循环会停止
    sys.exit(app.exec_())